Skip to content

FE-709: Spec/Plan and ADR Reconciliations#139

Open
lunelson wants to merge 19 commits into
mainfrom
ln/fe-709-reconciliations
Open

FE-709: Spec/Plan and ADR Reconciliations#139
lunelson wants to merge 19 commits into
mainfrom
ln/fe-709-reconciliations

Conversation

@lunelson
Copy link
Copy Markdown
Contributor

re-sync and add notes about server refactor

ln-sync updates

Copy link
Copy Markdown
Contributor Author

lunelson commented May 15, 2026

@cursor
Copy link
Copy Markdown

cursor Bot commented May 15, 2026

PR Summary

Low Risk
Documentation-only updates that reframe upcoming runtime work (threads → secondary chats) and add internal refactor notes; no code paths or runtime behavior change.

Overview
Updates the planning/design docs to recast Conversational Workspace Runtime Track 2 from a schema-level thread substrate to inline/collapsible secondary chats implemented over existing chat/turn persistence, explicitly deferring any thread table until proven necessary.

Re-syncs memory/PLAN.md, docs/design/CONVERSATIONAL_WORKSPACE_RUNTIME.md, and related status/traceability notes (including retiring side-chat persistence V4a as an independent frontier) and adds memory/SERVER_REFACTOR_NOTES.md capturing follow-up src/server/ structuring/refactor findings (notably app.ts and capability adapter seams).

Reviewed by Cursor Bugbot for commit 0c7799e. Bugbot is set up for automated code reviews on this repo. Configure here.

@lunelson lunelson changed the title re-sync and add notes about server refactor FE-709: small patches to planning May 15, 2026
@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 15, 2026

🤖 Augment PR Summary

Summary: Re-syncs planning/design docs after FE-709 and documents the next runtime arc.
• Marks the continuous workspace hybrid as selected/shipped and updates the runtime umbrella accordingly.
• Reframes Track 2 (chat-runtime-threads) as a coordination sub-RFC before any thread schema commitment.
• Retires side-chat persistence V4a as an independent frontier and records the archive entry.
• Extends SPEC with Requirement 45 plus assumptions/decisions/invariants around inline threads and authority boundaries.
• Adds temporary notes capturing remaining src/server/ refactor findings for follow-up work.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread docs/archive/PLAN_HISTORY.md Outdated

## Recent Frontier Archives

- 2026-05-15 — **Side-chat persistence V4a retired as an independent frontier** — persistent side-chat history was absorbed into the Conversational Workspace Runtime Track 2 thread-runtime frontier; the old V4a `chat.kind='side_chat'` persistence plan remains a historical substrate option, while `chat-runtime-threads` decides child-chat vs new-thread-table vs UI-rendered substrate shape.
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR title doesn’t match the repo convention '{issue-id}: {Linear issue title}', which makes stack/Linear traceability harder for reviewers. (Rule: AGENTS.md)

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

kostandinang and others added 16 commits May 15, 2026 15:39
Planning baseline for the umbrella's frontier-item decomposition. Adds
three new frontier definitions for the runtime tracks not yet captured
in PLAN.md (Tracks 2/3/5), flips continuous-workspace to done after
FE-709, and retires side-chat-persistence-v4a as superseded by Track 2.

This is a draft planning PR — Linear issue TBD. Per planning-pr
convention: planning baselines for shared downstream branches go on
a separate planning branch off main (here, off ln/fe-705-extensions
so it inherits the new PLAN.md format from Lu's stack and shows only
the umbrella additions in the diff).

Changes:
- Context paragraph: name the umbrella + its 5 sub-tracks
- Sequencing: continuous-workspace done; insert chat-runtime-threads,
  thread-context-provision, reconciliation-runtime into Next
- Three new frontier definitions: chat-runtime-threads (Track 2),
  reconciliation-runtime (Track 3), thread-context-provision (Track 5)
- continuous-workspace: Linear=FE-709, Status=done
- Horizon: side-chat-persistence-v4a removed (superseded)
- Recently Completed: FE-709 entry
- Dependencies: TRACK A restructured as the umbrella; RETIRED section
  added for v4a

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All four phase routes now render ContinuousWorkspaceView, which shows
all realized phase sections stacked in one scroll surface. Unrealized
future phases are skipped. Only the current reachable phase section
has an actionable bottom artifact. Graph view is unchanged.

InterviewView is preserved as-is for its existing test coverage.

Co-authored-by: Amp <amp@ampcode.com>
One controller owns the single chat session, lifecycle hooks, auto-phase-intent,
and per-phase section projection. ContinuousWorkspaceView no longer double-reads
from useSpecificationBundleData + useInterviewController — it uses only the new
controller. useInterviewController is preserved unchanged for InterviewView tests.

Co-authored-by: Amp <amp@ampcode.com>
Added WorkspaceFocusContext to bridge scroll position from the continuous
workspace view to the phase navigation sidebar. IntersectionObserver on
section divs updates focusedPhase; the sidebar uses it for is-active
highlighting instead of route-active matching when available. Route-based
highlighting is preserved as fallback for graph view and export routes.

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Amp <amp@ampcode.com>
… core

Move 9 pure helper functions (live activity, tool items, reasoning text,
turn reference comparison) and the bottom-artifact enrichment chain from
both useInterviewController and useContinuousWorkspaceController into
-interview-controller-core.ts. Both controllers now import from core
instead of carrying character-identical copies.

Also moves InterviewControllerBottomArtifactState type to core (re-exported
from -interview-controller.ts for downstream consumers) and fixes
ContinuousWorkspaceController to use InterviewDurableSpecificationState
directly instead of ReturnType<typeof ...>.

Net reduction: ~185 lines. No behavior change.

Co-authored-by: Amp <amp@ampcode.com>
Remove dead InterviewView and useInterviewController mocks from
router.test.tsx (no production route renders them anymore). Rename
interviewView* counters to workspaceView* to match the actual component
under test (ContinuousWorkspaceView). Remove provenance comment from
continuous controller.

Completes Step 4 of the CONTINUOUS_WORKSPACE_HYBRID.md migration plan.
The route-first assumptions were already structurally retired by Steps
1-2 (continuous controller derives activePhase from workflow state, not
route params). This commit cleans up the residual test artifacts.

Co-authored-by: Amp <amp@ampcode.com>
Clear stale workspace focus on route changes and stabilize continuous workspace section inputs so scroll-spy observers are not rebuilt on unrelated renders.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update mutation callback refs synchronously so stable action wrappers always call the latest mutation implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid rebuilding the continuous workspace observer for artifact-only section changes by keying the effect to the rendered phase list instead of stabilizing controller artifacts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep submitted-phase live tool indicators running so the refactored controllers preserve the previous pre-stream UI behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
Re-applies FE-705's a4827a2 'Fix completed tool activity rendering'
to the extracted -interview-controller-core helpers, so the live
tool-running indicator goes false the moment a tool returns
output-available instead of persisting until the chat stream ends.

InterviewView fixture for the 'pre-stream generating window' test
now seeds the tool part with state: 'input-available' (the actual
pre-stream state), which is what hasRunningLiveTool requires.
HANDOFF.md is volatile session-transfer state — its own contract said
"Delete this file after PR is submitted." ln-sync and ln-build skills
both instruct agents to remove stale HANDOFF.md files rather than
preserve them as archive breadcrumbs.
@lunelson lunelson changed the base branch from ka/fe-709-runtime-umbrella-planning-sync to graphite-base/139 May 15, 2026 14:37
@lunelson lunelson force-pushed the graphite-base/139 branch from 59e81fb to dce8bbe Compare May 15, 2026 14:37
@lunelson lunelson force-pushed the ln/fe-709-reconciliations branch from 8068b1b to 0c7799e Compare May 15, 2026 14:37
@lunelson lunelson changed the base branch from graphite-base/139 to ka/fe-709-continuous-workspace May 15, 2026 14:37
@lunelson lunelson changed the title FE-709: small patches to planning FE-709: Spec/Plan and ADR Reconciliations May 15, 2026
@lunelson lunelson marked this pull request as draft May 15, 2026 14:38
@lunelson lunelson marked this pull request as ready for review May 15, 2026 15:14
@lunelson lunelson self-assigned this May 15, 2026
@lunelson lunelson requested a review from kostandinang May 15, 2026 15:14
Base automatically changed from ka/fe-709-continuous-workspace to main May 15, 2026 16:19
kostandinang added a commit that referenced this pull request May 15, 2026
Promote chat-runtime-secondary-chats to Active in PLAN.md (Linear=FE-716)
with V1 narrowing and deferred list. CARDS.md decomposes FE-716 into
commit-sized slices C0–C10. Adopt 'secondary chat' lexicon throughout
(matches PR #139). Retire HANDOFF.md per its contract.
kostandinang added a commit that referenced this pull request May 15, 2026
Promote chat-runtime-secondary-chats to Active in PLAN.md (Linear=FE-716)
with V1 narrowing and deferred list. CARDS.md decomposes FE-716 into
commit-sized slices C0–C10. Adopt 'secondary chat' lexicon throughout
(matches PR #139). Retire HANDOFF.md per its contract.

Co-authored-by: Amp <amp@ampcode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants